using System;
using System.Collections;
using System.Collections.Generic;


namespace NanoERP.Model
{
	/// <summary>
    /// 审核环节数
	/// </summary>
	[Serializable]
	public sealed class Flowphase 
	{
		#region Private Members
		
		// Variabili di stato
		private bool _isChanged;

		// Primary Key(s) 
		private long _id; 
		
		// Properties 
		private long? _flowid; 
		private int? _phasenum; 
		private string _phasename; 
		private int? _isfinish; 
		private string _phaseuser; 		

		#endregion
		
		#region Default ( Empty ) Class Constructor
		
		/// <summary>
		/// default constructor
		/// </summary>
		public Flowphase()
		{
			_id = 0;  
			_flowid = null; 
			_phasenum = null;
			_phasename = null;  
			_isfinish = null;
			_phaseuser = null; 
		}
		
		#endregion // End of Default ( Empty ) Class Constructor
		
		#region Full Constructor
		
		/// <summary>
		/// full constructor
		/// </summary>
		public Flowphase(long id, long? flowid, int? phasenum, string phasename, int? isfinish, string phaseuser)
		{
			_id = id; 
			_flowid = flowid; 
			_phasenum = phasenum; 
			_phasename = phasename; 
			_isfinish = isfinish; 
			_phaseuser = phaseuser; 
		}
		
		#endregion // End Full Constructor

		#region Public Properties
			
		/// <summary>
		/// 主键
		/// </summary>		
		public long Id
		{
			get { return _id; }
			set { _isChanged |= (_id != value); _id = value; }
		} 
	  
		/// <summary>
		/// 流程ID  表：FLOWINFO
		/// </summary>		
		public long? Flowid
		{
			get { return _flowid; }
			set { _isChanged |= (_flowid != value); _flowid = value; }
		} 
	  
		/// <summary>
		/// 操作阶段（步骤）编号
		/// </summary>		
		public int? Phasenum
		{
			get { return _phasenum; }
			set { _isChanged |= (_phasenum != value); _phasenum = value; }
		} 
	  
		/// <summary>
		/// 阶段名称（审核名称）
		/// </summary>		
		public string Phasename
		{
			get { return _phasename; }
			set	
			{
				if ( value != null )
					if( value.Length > 50)
						throw new ArgumentOutOfRangeException("Invalid value for Phasename", value, value.ToString());
				
				_isChanged |= (_phasename != value); _phasename = value;
			}
		} 
	  
		/// <summary>
		/// 是否完成
		/// </summary>		
		public int? Isfinish
		{
			get { return _isfinish; }
			set { _isChanged |= (_isfinish != value); _isfinish = value; }
		} 
	  
		/// <summary>
		/// 阶段操作用户
		/// </summary>		
		public string Phaseuser
		{
			get { return _phaseuser; }
			set	
			{
				if ( value != null )
					if( value.Length > 2000)
						throw new ArgumentOutOfRangeException("Invalid value for Phaseuser", value, value.ToString());
				
				_isChanged |= (_phaseuser != value); _phaseuser = value;
			}
		} 
		
		#endregion 
	}
}